#pragma once
#include <vector>
#include <allegro5/allegro_color.h>
#include <allegro5/allegro_primitives.h>
#include "dataTypes.h"
#include "Color.h"
using namespace std;

struct Font
{
	float w;
	float h;
	float size;
	ALLEGRO_COLOR color;
	bool border;
	float borderSize;
	ALLEGRO_COLOR borderColor;
};

class TextDrawer
{
public:
	static Font* font;
	static float interline;

	static vector<Font*> fonts;

	static void DrawString(const char* aString, float aX, float aY, EAlign aFlag);
	static void SetFont(EFont aFont);

private:
	static bool init;
	static float x;
	static float y;
	static Color* c;

	TextDrawer();
	~TextDrawer();

	static void Init();
	static void DrawLetter(char aLetter);
	static inline void DrawLine(float aX1, float aY1, float aX2, float aY2);
};

